package customerEnter.Frame.JDBCDao.Interface;

import java.util.List;

import customerEnter.Frame.DaoDataTransmission.DaoFrameDMLBaseTransmission;

/**
 * 
 * 类描述： 接口參數設置
 * 
 * 类名称：DMLParameterSettingInterface
 * 
 * 创建人：dy
 * 
 * 创建时间：2017-8-1 下午4:23:46
 * 
 */
public interface DMLParameterSettingInterface {

	/**
	 * 查詢單個統計數據類型int
	 */
	DaoFrameDMLBaseTransmission findQueryInteger(String front, String tableName, String where);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryBean(String front, String tableName, String where, Class<?> className,
			Boolean pagingParametersCount, boolean ifEhcache);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryBean(String front, String tableName, String where, Class<?> className,
			boolean ifEhcache);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryString(String front, String tableName, String where, boolean ifEhcache);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryListObjects(String front, String tableName, String where, boolean ifEhcache);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryMap(String front, String tableName, String where, boolean ifEhcache);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryListMap(String front, String tableName, String where, boolean ifEhcache);

	/**
	 * 查詢單個bean
	 */
	DaoFrameDMLBaseTransmission findQueryListPageMap(String front, String tableName, String where, Class<?> className,
			Boolean pagingParametersCount, boolean ifEhcache, int size, int page, String order, String descOrAsc,
			int position);

	/**
	 * 查詢list
	 */
	DaoFrameDMLBaseTransmission findQueryList(String front, String tableName, String where, Class<?> className,
			Boolean pagingParametersCount, boolean ifEhcache);

	/**
	 * 查詢list
	 */
	DaoFrameDMLBaseTransmission findQueryOneOrMayList(String front, String tableName, String where, Class<?> className,
			Boolean pagingParametersCount, boolean ifEhcache);

	/**
	 * 查詢list 分頁和時間線排序的問題
	 */
	DaoFrameDMLBaseTransmission findQueryPageTime(String front, String tableName, String where, Class<?> className,
			Boolean pagingParametersCount, boolean ifEhcache, int size, int page, String order, String descOrAsc,
			int position);

	/**
	 * 查詢list 分頁和時間線排序的問題
	 */
	DaoFrameDMLBaseTransmission findQueryPage(String front, String tableName, String where, Class<?> className,
			Boolean pagingParametersCount, boolean ifEhcache, int size, int page, String order, String descOrAsc);

	/**
	 * ------------------------增刪改操作--------------------------------------------
	 * ---- ----------
	 * 
	 * 
	 */
	/**
	 * 批量添加
	 */
	<T> DaoFrameDMLBaseTransmission InsertBatch(String TableName, List<T> t, Class<T> class1);

	public DaoFrameDMLBaseTransmission InsterObject(String Table, Object MappingObject, boolean isReturnId);

	public <T> DaoFrameDMLBaseTransmission InsterObject(String Table, Object MappingObject);

	public DaoFrameDMLBaseTransmission updateTable(String TableName, Object MappingObject, String where);

	public <T> DaoFrameDMLBaseTransmission updateTableBatch(String TableName, List<T> t, String where);

	public DaoFrameDMLBaseTransmission delete(String TableName, String where);

	public DaoFrameDMLBaseTransmission savePreparedStatementReturnId(String Table, Object[] objects);

	public DaoFrameDMLBaseTransmission UpdatePreparedStatement(String TableName, String where, Object[] objects);

	public DaoFrameDMLBaseTransmission savePreparedStatementBatch(String Table, List<Object[]> objects);

	public DaoFrameDMLBaseTransmission UpdatePreparedStatementBatch(String TableName, String where,
			List<Object[]> objects);
}
